﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TaleWorlds.CampaignSystem;
using TaleWorlds.CampaignSystem.Actions;
using TaleWorlds.Core;
using TaleWorlds.Library;

//日进斗金,同时加经验和技能
namespace ExampleMod
{
    // 继承 CampaignBehaviorBase 以创建您自己的行为。
    // 类名是任意的。
    public class DailyIncomeBehavior : CampaignBehaviorBase
    {
        // 注册事件监听器。
        public override void RegisterEvents()
        {
            // CampaignEvents类的属性中准备了各种事件，可以控制行为的执行时机。
            // 这一次，我使用 CampaignEvents.DailyTickEvent 每天运行一次。
            CampaignEvents.DailyTickEvent.AddNonSerializedListener(this, OnDailyTick);
        }

        // 好像是用来保存save data中的值的。
        // 本例中没有用到，但它是一个抽象方法，需要实现。

        public override void SyncData(IDataStore dataStore)
        {
        }

        // 事件监听器
        // 触发事件时将调用的回调。
        // 方法名称是任意的，但最好与事件名称配对。
        // CampaignEvents. ○○ Event-> On ○○ ()
        //每天加钱和经验 哈哈哈哈
        private void OnDailyTick()
        {

            // 这是给予玩家 1000块过程。
            // 如果钱太多了就不给了
            //添加影响力
            //Hero.MainHero.AddPower(100f);
            //增加经验,大于40级就少加了
            float exp = (Hero.MainHero.Level + 1) * 100f;
            if (Hero.MainHero.Level > 40)
            {
                exp = exp / 100;
            }
            Hero.MainHero.AddSkillXp(DefaultSkills.Riding, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Athletics, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Bow, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.OneHanded, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.TwoHanded, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Charm, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Leadership, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Roguery, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Scouting, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Tactics, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Crafting, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Throwing, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Crossbow, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Polearm, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Medicine, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Engineering, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Steward, exp);
            Hero.MainHero.AddSkillXp(DefaultSkills.Trade, exp);

            bool flag = Hero.MainHero.Gold <= 10000000;
            if (flag)
            {
                GiveGoldAction.ApplyBetweenCharacters(null, Hero.MainHero, 100);
                InformationManager.DisplayMessage(new InformationMessage("感谢老板给的大火箭,666!!!!"));
            }
            else
            {
                //InformationManager.DisplayMessage(new InformationMessage("你的钱已经够多了!!!!"));
            }


        }
    }

}
